// 获取屏幕可视宽度（是否小于等于1024）
export const clientWidth = () => {
  return document.body.clientWidth <= 1024;
};

//设置防抖，保证无论拖动窗口大小，只执行一次获取浏览器宽高的方法
export const debounce = (fun, delay) => {
  let timer;
  return function () {
    if (timer) {
      clearTimeout(timer);
    }
    timer = setTimeout(() => {
      fun();
    }, delay);
  };
};

/**
 * * 生成一个不重复的ID
 * @param { Number } randomLength
 */
export const getUUID = (randomLength = 10) => {
  return Number(
    Math.random().toString().substring(2, randomLength) + Date.now()
  ).toString(36);
};

export const JSONStringify = (data) => {
  return JSON.stringify(
    data,
    (key, val) => {
      // 处理函数丢失问题
      if (typeof val === "function") {
        return `${val}`;
      }
      // 处理 undefined 丢失问题
      if (typeof val === "undefined") {
        return null;
      }
      return val;
    },
    2
  );
};

export const formatTime = (time, type = "YYYY-MM-HH hh:mm:ss") => {
  if (typeof time === "number" && time.length === 10) {
    // 解析 Unix 时间戳 (秒) 1666617034
    // dayjs.unix().format('YYYY-MM-DD')
    // 时间戳 (秒)转为毫秒
    time = time * 1000;
  }
  // 解析 Date 对象实例 new Date()
  // 解析 Unix 时间戳 (毫秒) 1666617034000
  // 解析符合 ISO 8601 格式的日期字符串 '2022-10-24T20:00:00.000Z'
  return dayjs(time).format(type);
};

export const emptyId = "00000000-0000-0000-0000-000000000000";
